document.addEventListener('DOMContentLoaded', function() {
    const profileUrlInput = document.getElementById('profileUrl');
    const messageInput = document.getElementById('message');
    const sendButton = document.getElementById('sendMessage');
    const openProfileButton = document.getElementById('openProfile');
    const statusDiv = document.getElementById('status');
  
    // 从存储中加载上次的输入
    chrome.storage.local.get(['profileUrl', 'message'], function(result) {
      if (result.profileUrl) profileUrlInput.value = result.profileUrl;
      if (result.message) messageInput.value = result.message;
    });
  
    // 保存输入到存储
    function saveInputs() {
      chrome.storage.local.set({
        profileUrl: profileUrlInput.value,
        message: messageInput.value
      });
    }
  
    // 显示状态信息
    function showStatus(message, isError = false) {
      statusDiv.textContent = message;
      statusDiv.className = `status ${isError ? 'error' : 'success'}`;
      statusDiv.style.display = 'block';
      
      setTimeout(() => {
        statusDiv.style.display = 'none';
      }, 3000);
    }
  
    // 打开个人资料
    openProfileButton.addEventListener('click', function() {
      const url = profileUrlInput.value.trim();
      if (!url) {
        showStatus('请输入LinkedIn个人资料URL', true);
        return;
      }
      
      if (!url.includes('linkedin.com/in/')) {
        showStatus('请输入有效的LinkedIn个人资料URL', true);
        return;
      }
  
      chrome.tabs.create({ url: url });
      saveInputs();
    });
  
    // 发送消息 - 使用scripting API直接注入脚本
    sendButton.addEventListener('click', function() {
      const url = profileUrlInput.value.trim();
      const message = messageInput.value.trim();
      
      if (!url) {
        showStatus('请输入LinkedIn个人资料URL', true);
        return;
      }
      
      if (!message) {
        showStatus('请输入消息内容', true);
        return;
      }
  
      if (!url.includes('linkedin.com/in/')) {
        showStatus('请输入有效的LinkedIn个人资料URL', true);
        return;
      }
  
      // 保存输入
      saveInputs();
  
      // 检查当前是否在LinkedIn页面
      chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        const currentTab = tabs[0];
        
        if (currentTab.url && currentTab.url.includes('linkedin.com/in/')) {
          // 在当前页面直接注入脚本
          chrome.scripting.executeScript({
            target: { tabId: currentTab.id },
            func: sendLinkedInMessage,
            args: [message]
          }, function(results) {
            if (chrome.runtime.lastError) {
              showStatus('执行失败: ' + chrome.runtime.lastError.message, true);
            } else if (results && results[0] && results[0].result) {
              const result = results[0].result;
              if (result.success) {
                showStatus('消息发送成功！');
              } else {
                showStatus(result.error || '发送失败，请重试', true);
              }
            } else {
              showStatus('发送失败，请重试', true);
            }
          });
        } else {
          // 打开新标签页并发送消息
          chrome.tabs.create({ url: url }, function(tab) {
            // 等待页面加载完成后发送消息
            setTimeout(() => {
              chrome.scripting.executeScript({
                target: { tabId: tab.id },
                func: sendLinkedInMessage,
                args: [message]
              }, function(results) {
                if (results && results[0] && results[0].result) {
                  const result = results[0].result;
                  if (result.success) {
                    showStatus('消息发送成功！');
                  } else {
                    showStatus(result.error || '发送失败，请重试', true);
                  }
                } else {
                  showStatus('发送失败，请重试', true);
                }
              });
            }, 3000);
          });
        }
      });
    });
  });
  
  // 发送LinkedIn消息的函数（将在目标页面执行）
  function sendLinkedInMessage(message) {
    console.log('LinkedIn Message Sender: 开始发送消息', message);
    
    try {
      // 检查是否在个人资料页面
      if (!window.location.href.includes('linkedin.com/in/')) {
        throw new Error('请在LinkedIn个人资料页面使用此功能');
      }
  
      // 查找发送消息按钮
      const messageButton = findMessageButton();
      if (!messageButton) {
        throw new Error('未找到发送消息按钮，可能该用户不允许接收消息');
      }
  
      console.log('LinkedIn Message Sender: 找到发送消息按钮，准备点击');
      
      // 点击发送消息按钮
      messageButton.click();
      
      // 等待消息输入框出现
      setTimeout(() => {
        const messageInput = findMessageInput();
        if (!messageInput) {
          throw new Error('消息输入框未出现');
        }
  
        console.log('LinkedIn Message Sender: 找到消息输入框，准备输入消息');
        
        // 输入消息
        messageInput.value = message;
        messageInput.dispatchEvent(new Event('input', { bubbles: true }));
        
        // 等待发送按钮出现并点击
        setTimeout(() => {
          const sendButton = findSendButton();
          if (!sendButton) {
            throw new Error('发送按钮未出现');
          }
  
          console.log('LinkedIn Message Sender: 找到发送按钮，准备点击');
          
          // 点击发送
          sendButton.click();
          console.log('LinkedIn Message Sender: 已点击发送按钮');
          
          return { success: true, message: '消息发送成功' };
        }, 1000);
      }, 1000);
      
      return { success: true, message: '正在发送消息...' };
      
    } catch (error) {
      console.error('LinkedIn Message Sender: 发送LinkedIn消息失败:', error);
      return { success: false, error: error.message };
    }
  }
  
  // 查找发送消息按钮
  function findMessageButton() {
    console.log('LinkedIn Message Sender: 开始查找发送消息按钮');
    
    const selectors = [
      'button[aria-label*="发消息"]',
      'button[aria-label*="发送消息"]',
      'button[aria-label*="Send message"]',
      'button[aria-label*="Message"]',
      '[data-control-name="send_message"]',
      'button[data-control-name="send_message"]',
      'button[data-control-name="message"]'
    ];
  
    for (const selector of selectors) {
      try {
        const button = document.querySelector(selector);
        if (button && button.offsetParent !== null) {
          console.log('LinkedIn Message Sender: 通过选择器找到按钮:', selector);
          return button;
        }
      } catch (e) {
        continue;
      }
    }
  
    // 通过文本查找
    const buttons = document.querySelectorAll('button');
    for (const button of buttons) {
      const text = button.textContent.toLowerCase();
      if ((text.includes('消息') || text.includes('message') || text.includes('发消息')) && button.offsetParent !== null) {
        console.log('LinkedIn Message Sender: 通过文本找到按钮:', text);
        return button;
      }
    }
  
    console.log('LinkedIn Message Sender: 未找到发送消息按钮');
    return null;
  }
  
  // 查找消息输入框
  function findMessageInput() {
    const selectors = [
      'textarea[placeholder*="消息"]',
      'textarea[placeholder*="Message"]',
      'textarea[placeholder*="写消息"]',
      'div[contenteditable="true"][data-placeholder*="消息"]',
      'div[contenteditable="true"][data-placeholder*="Message"]',
      'textarea[aria-label*="消息"]',
      'textarea[aria-label*="Message"]',
      'div[contenteditable="true"]'
    ];
  
    for (const selector of selectors) {
      try {
        const input = document.querySelector(selector);
        if (input) return input;
      } catch (e) {
        continue;
      }
    }
  
    return null;
  }
  
  // 查找发送按钮
  function findSendButton() {
    const selectors = [
      'button[aria-label*="发送"]',
      'button[aria-label*="Send"]',
      '[data-control-name="send"]',
      'button[data-control-name="send"]'
    ];
  
    for (const selector of selectors) {
      try {
        const button = document.querySelector(selector);
        if (button && button.offsetParent !== null) {
          return button;
        }
      } catch (e) {
        continue;
      }
    }
  
    return null;
  }